﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using Entidad;

namespace Persistencia
{
    public class TipoSemillaDAL
    {
        public List<TipoSemilla> TraerTodos(string strNombre)
        {
            SqlConnection cn = Conexion.Conectar();
            try
            {
                SqlCommand cmd = new SqlCommand("spTipoSemillaSel", cn);
                cmd.Parameters.Add(new SqlParameter("@Codigo", null));
                cmd.Parameters.Add(new SqlParameter("@Nombre", strNombre));

                cmd.CommandType = CommandType.StoredProcedure;
                SqlDataAdapter da = new SqlDataAdapter(cmd);

                DataSet ds = new DataSet();
                da.Fill(ds, "TipoSemilla");

                /*Creo la lista*/
                List<TipoSemilla> Lista = (from item in ds.Tables[0].AsEnumerable()
                                           select new TipoSemilla()
                                         {
                                             Codigo = item.Field<int>("Codigo"),
                                             Nombre = item.Field<string>("Nombre"),
                                             Descripcion = item.Field<string>("Descripcion"),

                                         }).ToList();
                return Lista;

            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                cn.Close();
            }
        }

        public int Insertar(TipoSemilla objActividad)
        {
            SqlConnection cn = Conexion.Conectar();
            try
            {
                SqlCommand cmd = new SqlCommand("spTipoSemillaIns", cn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Nombre", objActividad.Nombre));
                cmd.Parameters.Add(new SqlParameter("@Descripcion", objActividad.Descripcion));

                return cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                cn.Close();
            }
        }

        public int Modificar(TipoSemilla objActividad)
        {
            SqlConnection cn = Conexion.Conectar();
            try
            {
                SqlCommand cmd = new SqlCommand("spTipoSemillaUpd", cn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Codigo", objActividad.Codigo));
                cmd.Parameters.Add(new SqlParameter("@Nombre", objActividad.Nombre));
                cmd.Parameters.Add(new SqlParameter("@Descripcion", objActividad.Descripcion));

                return cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                cn.Close();
            }
        }

        public int Eliminar(int intCodigo)
        {
            SqlConnection cn = Conexion.Conectar();
            try
            {
                SqlCommand cmd = new SqlCommand("spTipoSemillaDel", cn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add(new SqlParameter("@Codigo", intCodigo));
                return cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                cn.Close();
            }
        }
    }
}
